iT邦幫忙

2023 iThome 鐵人賽

DAY 14
0
DevOps

一步步學DevOps:30天入門計劃系列 第 14

Day 14 Container容器介紹

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20230929/20139800kqRmNJMULg.jpg

容器技術是一項虛擬化技術,其主要目的在於簡化應用程序的部署、管理和運行。不同於傳統虛擬機器,容器化允許多個應用程式共享主機操作系統的核心(Kernel)。開發者可以將想要測試的應用程序以及相關依賴項(Dependency)封裝在容器中進行測試。容器與虛擬機器相比的主要優勢在於資源效能,因為container不需要模擬整個操作系統,所需資源相對較少。這也使開發者能夠更靈活地配置容器內的資源,因為每個容器都運行在獨立的環境中,互不影響。

容器化技術類似於虛擬機,但在概念上略有不同,其主要目的是為開發者提供測試應用程序的沙盒環境。
沙盒環境能確保容器內的應用程序在隔離環境中運行,避免相互干擾,保持獨立性。同時它還負責管理容器內的資源,包括虛擬文件系統、網絡配置和計算資源,以確保適當的資源分配。此外,提供容器額外的安全層,限制容器的權限,從而減少安全風險。最重要的是,容器確保應用程序能夠在不同作業環境核心中保持一致運行,實現應用程序的高度可移植性。

容器技術的實際應用包括:

  • 微服務架構:容器是實現微服務的理想工具,每個微服務都可打包成獨立的容器,提高獨立性和擴展性。
  • 持續集成/持續部署(CI/CD):容器可用於自動化測試和部署,從而加速交付過程並提高效率。
  • 多雲部署:容器能夠輕鬆移植到不同的雲提供商,實現高可用性和彈性。

容器(Container)的結構包括以下主要元素:

  • 映像檔(Image):容器的基本模板,包含應用程式的代碼、依賴項(dependencies)、配置和運行環境。映像檔通常是唯讀的,並且可以用來創建多個相同配置的容器實例。

  • 二進制檔案(Bins):可執行的應用程式或命令行工具,用來支援容器中應用程式運行所需的其他執行檔,由映像檔(Container Image)提供。。

  • 函式庫 (Libs):用來支援容器中應用程式的共享程式庫,是應用程式及其相依性的一部分,由映像檔(Container Image)提供。

  • 可讀寫層(Read and Write Layer):容器運行時的一個可讀寫層,稱為容器層(Container Layer)。在這個層上,應用程式可以進行修改和寫入操作,而不會影響映像檔本身。每個容器都有自己的可讀寫層,可以獨立運行和維護。

  • 容器運行時環境:容器需要一個運行環境來執行應用程式,通常是容器管理器(Container Runtime)Docker是一個著名的容器管理器。

  • 資源隔離:容器提供資源隔離,確保容器內的應用程式不會相互干擾,並且不會干擾主機系統或其他容器。這種隔離性是通過Linux內核的功能,如命名空間(Namespace)和控制組(cgroups)來實現的。


上一篇
Day 13 Shell Script 基礎介紹-2
下一篇
Day 15 使用Docker建立Container
系列文
一步步學DevOps:30天入門計劃30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言